package org.afs.gescol.gwt.client.service;

import org.afs.gescol.gwt.shared.EleveDetailsModel;
import org.afs.gescol.gwt.shared.EleveModel;
import org.afs.gescol.gwt.shared.SearchCriteriaModel;
import org.scub.foundation.framework.gwt.module.shared.pagination.RemotePagingCriteriasModel;
import org.scub.foundation.framework.gwt.module.shared.pagination.RemotePagingResultsModel;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * Async services of EleveServicesGwt.
 * @autor Kobla GBENYO (kobla.gbenyo@gmail.com)
 */
public interface EleveServicesGwtAsync {

    /**
     * Get eleves by criterias.
     * @param criterias the criterias
     * @param callBack the callback
     */
    void getListElevesByCriterias(RemotePagingCriteriasModel<SearchCriteriaModel> criterias,
        AsyncCallback<RemotePagingResultsModel<EleveModel>> callBack);

    /**
     * Delete eleve.
     * @param callBack the callback
     */
    void deleteEleveById(Long id, AsyncCallback<Void> callBack);

    /**
     * Get eleve by its id.
     * @param callBack the callback
     */
    void getEleveById(Long id, AsyncCallback<EleveDetailsModel> callBack);

}
